//
//  HMBaseTableViewController.swift
//  WeiBoSwift
//
//  Created by hgj on 2016/11/16.
//  Copyright © 2016年 HuGuoJian. All rights reserved.
//

import UIKit

class HMBaseTableViewController: UITableViewController {

    var userLogin = HMUserAccountViewModel.shared.userLogin
    
    var visitorView = HMVisitorLoginView()
    
    // 懒加载 自定义tabBar
    lazy var navBar: UINavigationBar = UINavigationBar(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: 64))
    
     // 懒加载 自定义Item
    lazy var navItem = UINavigationItem()
    
    // 重写方法
    override var title: String? {
        didSet {
            navItem.title = title
        }
    }
    
    //设置导航条
    private func setNavbar() {
        //影藏导航条 显示自己的导航条
        self.navigationController?.navigationBar.isHidden = true
    
        self.view.addSubview(navBar)
        //设置导航条的数据源为 [navItem] 数组即可将子类的navgiationitem的数据获取到navBar上
        //子类中需要调用 navitem.titleView/leftBarbuttonitem/rightBarbuttonItem 才可以显示控件
        navBar.items = [navItem]
    }
    
    override func loadView() {
        
        if userLogin {
            super.loadView()
            setupUI()
        } else {
            view = visitorView
            
            visitorView.delegate = self
            
//            setNavbar()
        }
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()

    }
    
    //设置UI界面
    private func setupUI() {
    
//        setNavbar()
        
    }

}

// MARK: -----实现代理方法 HMVisitorLoginViewDelegate-----
extension HMBaseTableViewController: HMVisitorLoginViewDelegate {
    
    func userWillLogin() {

        //为什么使用modal 人机交互的原则: 如果是线性的操作就应该使用push/pop的方式,如果是打断了线性的操作就应该使用 modal/dismiss
        let oAuthVC = HMOAuthViewController()
//        let navVC = UINavigationController(rootViewController: oAuthVC)
        let navVC = HMNavController(rootViewController: oAuthVC)
        present(navVC, animated: true, completion: nil)
    }
    
    func userWillRegister() {
          print("===>点击Register按钮","PATH:\(#file)","FUNCTION:\(#function)","ROW:\(#line)<===")
    }
}
